package org.nuonuo.sdk.model.base;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Version 1.0
 * @Author az
 * @Date 2024-04-01 13:06:47
 * @ClassName InvoiceOrder
 * @Description
 */
public class InvoiceOrder {

    /**
     * 购方名称
     */
    @NotNull(message = "购方名称必填")
    private String buyerName;
    /**
     * 销方税号（使用沙箱环境请求时消息体参数salerTaxNum和消息头参数userTax填写339902999999789113）
     */
    @NotNull(message = "销方税号必填")
    private String salerTaxNum;
    /**
     * 销方电话（在诺税通saas工作台配置过的可以不传，以传入的为准）
     */
    @NotNull(message = "销方电话必填")
    private String salerTel;
    /**
     * 销方地址（在诺税通saas工作台配置过的可以不传，以传入的为准）
     */
    @NotNull(message = "销方地址必填")
    private String salerAddress;
    /**
     * 订单号（每个企业唯一）
     */
    @NotNull(message = "订单号必填")
    private String orderNo;
    /**
     * 订单时间
     */
    @NotNull(message = "订单时间必填")
    private String invoiceDate;
    /**
     * 开票员（数电票时需要传入和开票登录账号对应的开票员姓名）
     */
    @NotNull(message = "开票员（数电票时需要传入和开票登录账号对应的开票员姓名）必填")
    private String clerk;
    /**
     * 购方手机（pushMode为1或2时，此项为必填，同时受企业资质是否必填控制）
     */
    @NotNull(message = "购方手机（pushMode为1或2时，此项为必填，同时受企业资质是否必填控制）必填")
    private String buyerPhone;
    /**
     * <pre>
     * 推送邮箱
     * pushMode为0或2时，此项为必填，同时受企业资质是否必填控制
     * </pre>
     */
    @NotNull(message = "推送邮箱必填")
    private String email;
    /**
     * <pre>
     * 开票类型：
     *  1:蓝票
     *  2:红票（数电票冲红请对接数电快捷冲红接口）
     * </pre>
     */
    @NotNull(message = "开票类型必填")
    private String invoiceType;
    /**
     * 发票明细，支持填写商品明细最大2000行（包含折扣行、被折扣行）
     */
    @NotNull(message = "发票明细必填")
    private @Valid List<InvoiceDetail> invoiceDetail;

    /**
     * 购方税号（企业要填，个人可为空；数电专票、二手车销售统一发票时必填）
     */
    private String buyerTaxNum;
    /**
     * 购方电话（购方地址+电话总共不超100字符；二手车销售统一发票时必填）
     */
    private String buyerTel;
    /**
     * 购方地址（购方地址+电话总共不超100字符；二手车销售统一发票时必填）
     */
    private String buyerAddress;
    /**
     * 购方银行开户行及账号
     */
    private String buyerAccount;
    /**
     * 销方银行开户行及账号(二手车销售统一发票时必填)
     */
    private String salerAccount;
    /**
     * <pre>
     * 不传默认为0
     * 0：都不显示
     * 1：备注仅显示销方开户行及账号
     * 2：备注仅显示购方开户行及账号
     * 3：购销方开户行及账号都显示（此字段仅在数电普票和数电专票下生效）
     * </pre>
     */
    private String showBankAccountType;
    /**
     * 冲红时填写的对应蓝票发票代码（红票必填 10位或12 位， 11位的时候请左补 0）
     */
    private String invoiceCode;
    /**
     * 冲红时填写的对应蓝票发票号码（红票必填，不满8位请左补0）
     */
    private String invoiceNum;
    /**
     * <pre>
     * 冲红原因：
     *  1:销货退回
     *  2:开票有误
     *  3:服务中止
     *  4:发生销售折让(开具红票时且票种为p,c,e,f,r需要传--成品油发票除外；不传时默认为 1)
     * </pre>
     */
    private String redReason;

    /**
     * <pre>
     * 红字信息表编号.专票冲红时此项必填，
     * 且必须在备注中注明“开具红字增值税专用发票信息表编号ZZZZZZZZZZZZZZZZ”字样，
     * 其中“Z”为开具红字增值税专用发票所需要的长度为16位信息表编号（建议16位，最长可支持24位）。
     * </pre>
     */
    private String billInfoNo;
    /**
     * 部门门店id（诺诺系统中的id）
     */
    private String departmentId;
    /**
     * 开票员id（诺诺系统中的id）
     */
    private String clerkId;
    /**
     * <pre>
     * 冲红时，在备注中注明“对应正数发票代码:XXXXXXXXX号码:YYYYYYYY”文案，
     * 其中“X”为发票代码，“Y”为发票号码，可以不填，接口会自动添加该文案；
     * 机动车发票蓝票时备注只能为空；数电票时最长为200字符
     * </pre>
     */
    private String remark;
    /**
     * 复核人（数电电票时若有值，会显示在生成的PDF/OFD备注栏中）
     */
    private String checker;
    /**
     * 收款人（数电电票时若有值，会显示在生成的PDF/OFD备注栏中）
     */
    private String payee;
    /**
     * 数电电票是否展示收款人和复核人，0：不显示 1：显示
     */
    private String showCheckerType;
    /**
     * 清单标志：非清单:0；清单:1，默认:0，电票固定为0
     */
    private String listFlag;
    /**
     * 清单项目名称：对应发票票面项目名称（listFlag为1时，必填，默认为“详见销货清单”）
     */
    private String listName;
    /**
     * 推送方式：-1,不推送;0,邮箱;1,手机（默认）;2,邮箱、手机
     */
    private String pushMode;
    /**
     * 抄送手机，多个时用英文逗号隔开，最多支持5个，必须在phone字段有值时，才支持传入
     */
    private String ccPhone;
    /**
     * 抄送邮箱，多个时用英文逗号隔开，最多支持5个，必须在email字段有值时，才支持传入
     */
    private String ccEmail;

    /**
     * <pre>
     * 发票种类
     *  p：普通发票(电票)(默认)
     *  c：普通发票(纸票)
     *  s：专用发票
     *  e：收购发票(电票)
     *  f：收购发票(纸质)
     *  r：普通发票(卷式)
     *  b：增值税电子专用发票
     *  j：机动车销售统一发票
     *  u：二手车销售统一发票
     *  bs：电子发票(增值税专用发票)-即数电专票(电子)
     *  pc：电子发票(普通发票)-即数电普票(电子)
     *  es：数电纸质发票(增值税专用发票)-即数电专票(纸质)
     *  ec：数电纸质发票(普通发票)-即数电普票(纸质)
     * </pre>
     */
    private String invoiceLine;
    /**
     * <pre>
     * 数电纸票类型(数电纸票时才需要传)
     * （票种为ec时，默认04；票种为es时，默认为1130）
     *  04 2016版增值税普通发票（二联折叠票）
     *  05 2016版增值税普通发票（五联折叠票)
     *  000008101200 2008版增值税普票（二联）
     *  000008101500 2008版增值税普票（五联）
     *  1130 增值税专用发票（中文三联无金额限制版）
     *  1140 增值税专用发票（中文四联无金额限制版）
     *  1160 增值税专用发票（中文六联无金额限制版）
     *  1170 增值税专用发票（中文七联无金额限制版）
     * </pre>
     */
    private String paperInvoiceType;

    /**
     * <pre>
     * 特定要素
     *  0：普通发票（默认）
     *  1：成品油
     *  2：稀土（仅支持s、bs票种且编码必须为稀土产品目录中的商品）
     *  3：建筑服务
     *  4：货物运输服务
     *  5：不动产销售
     *  6：不动产经营租赁服务
     *  9：旅客运输服务
     *  12：自产农产品销售
     *  16：农产品收购
     *  31：建安发票
     *  32：房地产销售发票
     *  33：二手车发票反向开具
     *  34：电子烟
     *  35：矿产品
     * </pre>
     */
    private String specificFactor;
    /**
     * <pre>
     * 是否强制开具标识：
     *  0：否
     *  1：是（发票种类为u，且特定要素为 33-二手车发票反向开具时才需要填；
     *  默认为 0；若为1时，则不校验卖方自然人身份证号的合规性）
     * </pre>
     */
    private String forceFlag;
    /**
     * 代开标志：0非代开;1代开。代开蓝票时备注要求填写文案：代开企业税号:***,代开企业名称:***；代开红票时备注要求填写文案：对应正数发票代码:***号码:***代开企业税号:***代开企业名称:***
     */
    private String proxyInvoiceFlag;
    /**
     * 代办退税标记：0否（默认），1是；仅代办退税资质企业可传1
     */
    private String taxRebateProxy;
    /**
     * 数电发票差额征税开具方式：01 全额开票，02 差额开票；非数电发票开具差额时，不传
     */
    private String invoiceDifferenceType;
    /**
     * 回传发票信息地址（开票完成、开票失败）
     */
    private String callBackUrl;
    /**
     * 分机号（只能为空或者数字）
     */
    private String extensionNumber;
    /**
     * 终端号（开票终端号，只能 为空或数字）
     */
    private String terminalNumber;
    /**
     * 机器编号（12位盘号）
     */
    private String machineCode;
    /**
     * 是否机动车类专票 0-否 1-是
     */
    private String vehicleFlag;
    /**
     * 是否隐藏编码表版本号 0-否 1-是（默认0，在企业资质中也配置为是隐藏的时候，并且此字段传1的时候代开发票 税率显示***）
     */
    private String hiddenBmbbbh;
    /**
     * 指定发票代码（票种为c普纸、f收购纸票时允许指定卷开具） 非必填
     */
    private String nextInvoiceCode;
    /**
     * 发票起始号码，当指定代码有值时，发票起始号码必填
     */
    private String nextInvoiceNum;
    /**
     * 发票终止号码，当指定代码有值时，发票终止号码必填
     */
    private String invoiceNumEnd;

    /**
     * 3%、1%税率开具理由（企业为小规模/点下户时才需要），对应值：1-开具发票为2022年3月31日前发生纳税义务的业务； 2-前期已开具相应征收率发票，发生销售折让、中止或者退回等情形需要开具红字发票，或者开票有误需要重新开具； 3-因为实际经营业务需要，放弃享受免征增值税政策
     */
    private String surveyAnswerType;

    /**
     * 购买方经办人姓名（数电票特有字段）
     */
    private String buyerManagerName;

    /**
     * <pre>
     * 经办人证件类型：
     *  101-组织机构代码证
     *  102-营业执照
     *  103-税务登记证
     *  199-其他单位证件
     *  201-居民身份证
     *  202-军官证
     *  203-武警警官证
     *  204-士兵证
     *  205-军队离退休干部证
     *  206-残疾人证
     *  207-残疾军人证（1-8级）
     *  208-外国护照
     *  210-港澳居民来往内地通行证
     *  212-中华人民共和国往来港澳通行证
     *  213-台湾居民来往大陆通行证
     *  214-大陆居民往来台湾通行证
     *  215-外国人居留证
     *  216-外交官证
     *  299-其他个人证件(数电发票特有)
     * </pre>
     */
    private String managerCardType;
    /**
     * 经办人证件号码（数电票特有字段）
     */
    private String managerCardNo;
    /**
     * 业务方自定义字段1，本应用只作保存
     */
    private String bField1;
    /**
     * 业务方自定义字段2，本应用只作保存
     */
    private String bField2;
    /**
     * 业务方自定义字段3，本应用只作保存
     */
    private String bField3;

    /**
     * <pre>
     * 购买方自然人标志，默认：0
     * 0-否
     * 1-是；仅在开具数电普票(电子)
     * </pre>
     */
    private String naturalPersonFlag;

    /**
     * <pre>
     * 数电农产品收购发票销售方证件类型，数电农产品收购必传，对应buyerTaxNum字段
     *  103 税务登记证
     *  201 居民身份证
     *  208 外国护照
     *  210 港澳居民来往内地通行证
     *  213 台湾居民来往大陆通行证
     *  215 外国人居留证
     *  219 香港永久性居民身份证
     *  220 台湾身份证
     *  221 澳门特别行政区永久性居民身份证
     *  233 外国人永久居留身份证（外国人永久居留证）
     *  299 其他个人证件
     * </pre>
     */
    private String certificateType;
    /**
     * <pre>
     * 对购方税号校验:（仅对数电票有效，未传时则取企业配置的值；注：若开启校验，当购方税号未能在电子税局中找到时 则会开票失败）
     *  0-不校验
     *  1-校验
     * </pre>
     */
    private String taxNumVerifyFlag;
    /**
     * 对购方名称校验（ 0-不校
     */
    private String naturalPersonVerifyFlag;
    /**
     * 机动车销售统一发票才需要传
     */
    private @Valid Vehicle vehicleInfo;
    /**
     * 开具二手车销售统一发票才需要传
     */
    private @Valid SecondHandCar secondHandCarInfo;
    /**
     * 开具建筑服务特定要素的数电票才需要传（specificFactor 为 3时）；注：数电建筑服务发票 只能有 一条明细 且 规格型号、单位、数量、单价 都不能有值
     */
    private @Valid InvoiceBuilding invoiceBuildingInfo;
    /**
     * 开具货物运输服务特定要素的数电票时才需要填（specificFactor = 4时）最多2000行，至少1行
     */
    private @Valid List<InvoiceGoodsTransports> invoiceGoodsTransports;
    /**
     * 实际变量名：invoiceTravellerTransportInfoList       开具旅客运输服务特定要素的数电票时才需要填（specificFactor 为 9时）最多2000行，可以为空
     */
    private @Valid List<InvoiceTravellerTransport> invoiceTravellerTransport;
    /**
     * 开具不动产经营租赁服务特定要素的数电票才需要传（specificFactor 为 6时）；注：此时 商品只能有 一条明细 且 规格型号、单位都不能有值
     */
    private @Valid RealPropertyRent realPropertyRentInfo;
    /**
     * 开具不动产销售特定要素的数电票才需要传（specificFactor 为 5时）；注：此时 商品只能有 一条明细 且 规格型号、单位都不能有值
     */
    private @Valid RealPropertySell realPropertySellInfo;
    /**
     * 数电发票差额扣除凭证列表，开具数电差额征税-差额开票时，必传
     */
    private List<DifferenceVoucher> differenceVoucherInfoList;
    /**
     * 附加模版名称（数电电票特有字段，附加模版有值时需要添加附加要素信息列表对象，需要先在电子税局平台维护好模版）
     */
    private String additionalElementName;
    /**
     * 附加要素信息列表（数电电票特有字段，附加要素信息可以有多个，有值时需要附加模版名称也有值）
     */
    private List<Additional> additionalElementList;

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getSalerTaxNum() {
        return salerTaxNum;
    }

    public void setSalerTaxNum(String salerTaxNum) {
        this.salerTaxNum = salerTaxNum;
    }

    public String getSalerTel() {
        return salerTel;
    }

    public void setSalerTel(String salerTel) {
        this.salerTel = salerTel;
    }

    public String getSalerAddress() {
        return salerAddress;
    }

    public void setSalerAddress(String salerAddress) {
        this.salerAddress = salerAddress;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(String invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public String getClerk() {
        return clerk;
    }

    public void setClerk(String clerk) {
        this.clerk = clerk;
    }

    public String getBuyerPhone() {
        return buyerPhone;
    }

    public void setBuyerPhone(String buyerPhone) {
        this.buyerPhone = buyerPhone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public List<InvoiceDetail> getInvoiceDetail() {
        return invoiceDetail;
    }

    public void setInvoiceDetail(List<InvoiceDetail> invoiceDetail) {
        this.invoiceDetail = invoiceDetail;
    }

    public String getBuyerTaxNum() {
        return buyerTaxNum;
    }

    public void setBuyerTaxNum(String buyerTaxNum) {
        this.buyerTaxNum = buyerTaxNum;
    }

    public String getBuyerTel() {
        return buyerTel;
    }

    public void setBuyerTel(String buyerTel) {
        this.buyerTel = buyerTel;
    }

    public String getBuyerAddress() {
        return buyerAddress;
    }

    public void setBuyerAddress(String buyerAddress) {
        this.buyerAddress = buyerAddress;
    }

    public String getBuyerAccount() {
        return buyerAccount;
    }

    public void setBuyerAccount(String buyerAccount) {
        this.buyerAccount = buyerAccount;
    }

    public String getSalerAccount() {
        return salerAccount;
    }

    public void setSalerAccount(String salerAccount) {
        this.salerAccount = salerAccount;
    }

    public String getShowBankAccountType() {
        return showBankAccountType;
    }

    public void setShowBankAccountType(String showBankAccountType) {
        this.showBankAccountType = showBankAccountType;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceNum() {
        return invoiceNum;
    }

    public void setInvoiceNum(String invoiceNum) {
        this.invoiceNum = invoiceNum;
    }

    public String getRedReason() {
        return redReason;
    }

    public void setRedReason(String redReason) {
        this.redReason = redReason;
    }

    public String getBillInfoNo() {
        return billInfoNo;
    }

    public void setBillInfoNo(String billInfoNo) {
        this.billInfoNo = billInfoNo;
    }

    public String getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(String departmentId) {
        this.departmentId = departmentId;
    }

    public String getClerkId() {
        return clerkId;
    }

    public void setClerkId(String clerkId) {
        this.clerkId = clerkId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getChecker() {
        return checker;
    }

    public void setChecker(String checker) {
        this.checker = checker;
    }

    public String getPayee() {
        return payee;
    }

    public void setPayee(String payee) {
        this.payee = payee;
    }

    public String getShowCheckerType() {
        return showCheckerType;
    }

    public void setShowCheckerType(String showCheckerType) {
        this.showCheckerType = showCheckerType;
    }

    public String getListFlag() {
        return listFlag;
    }

    public void setListFlag(String listFlag) {
        this.listFlag = listFlag;
    }

    public String getListName() {
        return listName;
    }

    public void setListName(String listName) {
        this.listName = listName;
    }

    public String getPushMode() {
        return pushMode;
    }

    public void setPushMode(String pushMode) {
        this.pushMode = pushMode;
    }

    public String getCcPhone() {
        return ccPhone;
    }

    public void setCcPhone(String ccPhone) {
        this.ccPhone = ccPhone;
    }

    public String getCcEmail() {
        return ccEmail;
    }

    public void setCcEmail(String ccEmail) {
        this.ccEmail = ccEmail;
    }

    public String getInvoiceLine() {
        return invoiceLine;
    }

    public void setInvoiceLine(String invoiceLine) {
        this.invoiceLine = invoiceLine;
    }

    public String getPaperInvoiceType() {
        return paperInvoiceType;
    }

    public void setPaperInvoiceType(String paperInvoiceType) {
        this.paperInvoiceType = paperInvoiceType;
    }

    public String getSpecificFactor() {
        return specificFactor;
    }

    public void setSpecificFactor(String specificFactor) {
        this.specificFactor = specificFactor;
    }

    public String getForceFlag() {
        return forceFlag;
    }

    public void setForceFlag(String forceFlag) {
        this.forceFlag = forceFlag;
    }

    public String getProxyInvoiceFlag() {
        return proxyInvoiceFlag;
    }

    public void setProxyInvoiceFlag(String proxyInvoiceFlag) {
        this.proxyInvoiceFlag = proxyInvoiceFlag;
    }

    public String getTaxRebateProxy() {
        return taxRebateProxy;
    }

    public void setTaxRebateProxy(String taxRebateProxy) {
        this.taxRebateProxy = taxRebateProxy;
    }

    public String getInvoiceDifferenceType() {
        return invoiceDifferenceType;
    }

    public void setInvoiceDifferenceType(String invoiceDifferenceType) {
        this.invoiceDifferenceType = invoiceDifferenceType;
    }

    public String getCallBackUrl() {
        return callBackUrl;
    }

    public void setCallBackUrl(String callBackUrl) {
        this.callBackUrl = callBackUrl;
    }

    public String getExtensionNumber() {
        return extensionNumber;
    }

    public void setExtensionNumber(String extensionNumber) {
        this.extensionNumber = extensionNumber;
    }

    public String getTerminalNumber() {
        return terminalNumber;
    }

    public void setTerminalNumber(String terminalNumber) {
        this.terminalNumber = terminalNumber;
    }

    public String getMachineCode() {
        return machineCode;
    }

    public void setMachineCode(String machineCode) {
        this.machineCode = machineCode;
    }

    public String getVehicleFlag() {
        return vehicleFlag;
    }

    public void setVehicleFlag(String vehicleFlag) {
        this.vehicleFlag = vehicleFlag;
    }

    public String getHiddenBmbbbh() {
        return hiddenBmbbbh;
    }

    public void setHiddenBmbbbh(String hiddenBmbbbh) {
        this.hiddenBmbbbh = hiddenBmbbbh;
    }

    public String getNextInvoiceCode() {
        return nextInvoiceCode;
    }

    public void setNextInvoiceCode(String nextInvoiceCode) {
        this.nextInvoiceCode = nextInvoiceCode;
    }

    public String getNextInvoiceNum() {
        return nextInvoiceNum;
    }

    public void setNextInvoiceNum(String nextInvoiceNum) {
        this.nextInvoiceNum = nextInvoiceNum;
    }

    public String getInvoiceNumEnd() {
        return invoiceNumEnd;
    }

    public void setInvoiceNumEnd(String invoiceNumEnd) {
        this.invoiceNumEnd = invoiceNumEnd;
    }

    public String getSurveyAnswerType() {
        return surveyAnswerType;
    }

    public void setSurveyAnswerType(String surveyAnswerType) {
        this.surveyAnswerType = surveyAnswerType;
    }

    public String getBuyerManagerName() {
        return buyerManagerName;
    }

    public void setBuyerManagerName(String buyerManagerName) {
        this.buyerManagerName = buyerManagerName;
    }

    public String getManagerCardType() {
        return managerCardType;
    }

    public void setManagerCardType(String managerCardType) {
        this.managerCardType = managerCardType;
    }

    public String getManagerCardNo() {
        return managerCardNo;
    }

    public void setManagerCardNo(String managerCardNo) {
        this.managerCardNo = managerCardNo;
    }

    public String getbField1() {
        return bField1;
    }

    public void setbField1(String bField1) {
        this.bField1 = bField1;
    }

    public String getbField2() {
        return bField2;
    }

    public void setbField2(String bField2) {
        this.bField2 = bField2;
    }

    public String getbField3() {
        return bField3;
    }

    public void setbField3(String bField3) {
        this.bField3 = bField3;
    }

    public String getNaturalPersonFlag() {
        return naturalPersonFlag;
    }

    public void setNaturalPersonFlag(String naturalPersonFlag) {
        this.naturalPersonFlag = naturalPersonFlag;
    }

    public String getCertificateType() {
        return certificateType;
    }

    public void setCertificateType(String certificateType) {
        this.certificateType = certificateType;
    }

    public String getTaxNumVerifyFlag() {
        return taxNumVerifyFlag;
    }

    public void setTaxNumVerifyFlag(String taxNumVerifyFlag) {
        this.taxNumVerifyFlag = taxNumVerifyFlag;
    }

    public String getNaturalPersonVerifyFlag() {
        return naturalPersonVerifyFlag;
    }

    public void setNaturalPersonVerifyFlag(String naturalPersonVerifyFlag) {
        this.naturalPersonVerifyFlag = naturalPersonVerifyFlag;
    }

    public Vehicle getVehicleInfo() {
        return vehicleInfo;
    }

    public void setVehicleInfo(Vehicle vehicleInfo) {
        this.vehicleInfo = vehicleInfo;
    }

    public SecondHandCar getSecondHandCarInfo() {
        return secondHandCarInfo;
    }

    public void setSecondHandCarInfo(SecondHandCar secondHandCarInfo) {
        this.secondHandCarInfo = secondHandCarInfo;
    }

    public InvoiceBuilding getInvoiceBuildingInfo() {
        return invoiceBuildingInfo;
    }

    public void setInvoiceBuildingInfo(InvoiceBuilding invoiceBuildingInfo) {
        this.invoiceBuildingInfo = invoiceBuildingInfo;
    }

    public List<InvoiceGoodsTransports> getInvoiceGoodsTransports() {
        return invoiceGoodsTransports;
    }

    public void setInvoiceGoodsTransports(List<InvoiceGoodsTransports> invoiceGoodsTransports) {
        this.invoiceGoodsTransports = invoiceGoodsTransports;
    }

    public List<InvoiceTravellerTransport> getInvoiceTravellerTransport() {
        return invoiceTravellerTransport;
    }

    public void setInvoiceTravellerTransport(List<InvoiceTravellerTransport> invoiceTravellerTransport) {
        this.invoiceTravellerTransport = invoiceTravellerTransport;
    }

    public RealPropertyRent getRealPropertyRentInfo() {
        return realPropertyRentInfo;
    }

    public void setRealPropertyRentInfo(RealPropertyRent realPropertyRentInfo) {
        this.realPropertyRentInfo = realPropertyRentInfo;
    }

    public RealPropertySell getRealPropertySellInfo() {
        return realPropertySellInfo;
    }

    public void setRealPropertySellInfo(RealPropertySell realPropertySellInfo) {
        this.realPropertySellInfo = realPropertySellInfo;
    }

    public List<DifferenceVoucher> getDifferenceVoucherInfoList() {
        return differenceVoucherInfoList;
    }

    public void setDifferenceVoucherInfoList(List<DifferenceVoucher> differenceVoucherInfoList) {
        this.differenceVoucherInfoList = differenceVoucherInfoList;
    }

    public String getAdditionalElementName() {
        return additionalElementName;
    }

    public void setAdditionalElementName(String additionalElementName) {
        this.additionalElementName = additionalElementName;
    }

    public List<Additional> getAdditionalElementList() {
        return additionalElementList;
    }

    public void setAdditionalElementList(List<Additional> additionalElementList) {
        this.additionalElementList = additionalElementList;
    }
}
